home *** CD-ROM | disk | FTP | other *** search
/ Software Vault: The Gold Collection / Software Vault - The Gold Collection (American Databankers) (1993).ISO / cdr35 / tx2mb242.zip / TXT2MSG.DOC < prev    next >
Text File  |  1993-06-29  |  36KB  |  771 lines

  1.  
  2.  
  3.    TXT2MSG 2.42                                                        Page 1
  4.  
  5.  
  6.  
  7.                                   T X T 2 M S G
  8.  
  9.                Textfile to PCBoard 14.x / 15.x Messagebase Utility
  10.                  (fondly referred to as "Tex" by the FTL users)
  11.  
  12.                         Copyright 1989-93 Robert Vostreys
  13.                                All Rights Reserved
  14.  
  15.                                   Version 2.42
  16.  
  17.                             (revised: June 29, 1993)
  18.  
  19.  
  20.                                 Table of Contents
  21.  
  22.    What is TXT2MSG?  . . . . . . . . . . . . . . . . . . . . . . . . . .    2
  23.  
  24.    Distribution  . . . . . . . . . . . . . . . . . . . . . . . . . . . .    4
  25.         ZipFile Contents . . . . . . . . . . . . . . . . . . . . . . . .    4
  26.         Distribution Rules . . . . . . . . . . . . . . . . . . . . . . .    5
  27.         Shareware  . . . . . . . . . . . . . . . . . . . . . . . . . . .    5
  28.  
  29.    TXT2MSG Operation . . . . . . . . . . . . . . . . . . . . . . . . . .    6
  30.         Defaults . . . . . . . . . . . . . . . . . . . . . . . . . . . .    6
  31.         Environment Variables  . . . . . . . . . . . . . . . . . . . . .    7
  32.         Commandline  . . . . . . . . . . . . . . . . . . . . . . . . . .    8
  33.         Commandline Examples . . . . . . . . . . . . . . . . . . . . . .    9
  34.  
  35.    Commandline Switches  . . . . . . . . . . . . . . . . . . . . . . . .    9
  36.         Header Control . . . . . . . . . . . . . . . . . . . . . . . . .    9
  37.         Message Control  . . . . . . . . . . . . . . . . . . . . . . . .   11
  38.         Screen/Interface . . . . . . . . . . . . . . . . . . . . . . . .   11
  39.  
  40.    Textfile Control  . . . . . . . . . . . . . . . . . . . . . . . . . .   12
  41.  
  42.    Script Processing . . . . . . . . . . . . . . . . . . . . . . . . . .   13
  43.         SQ2MSG Example . . . . . . . . . . . . . . . . . . . . . . . . .   14
  44.  
  45.    Notes and Limits of Operation . . . . . . . . . . . . . . . . . . . .   15
  46.         Error Messages . . . . . . . . . . . . . . . . . . . . . . . . .   16
  47.         Contacting the Author  . . . . . . . . . . . . . . . . . . . . .   16
  48.  
  49.  
  50.  
  51.    TXT2MSG 2.42                                                        Page 2
  52.  
  53.                                 What is TXT2MSG?
  54.  
  55.    TXT2MSG is a BBS Sysop utility for inserting ASCII text files into PCBoard
  56.    14.x, 15.x, and ProDoor 3.x messagebases.  It is widely used to import new
  57.    user welcome messages, event logs, FAX notices, questionnaire answer logs,
  58.    and similar text files.
  59.  
  60.    It can  take Script  Questionnaire ANSWERx  files and  import them  into a
  61.    messagebase  as if each user  had entered them.   This allows the Sysop to
  62.    use the  (F)rom command when  reading the  script answers  to adjust  that
  63.    user's access.  Specified callers logs can be scanned by TXT2MSG searching
  64.    for entries  by users answering  script questionnaires.  TXT2MSG  can then
  65.    add  the  information from  the questionnaire  and  the callers  log  to a
  66.    message.   This allows the  Sysop to  easily determine what  actions their
  67.    users have (or haven't) taken -- like reading required bulletins.
  68.  
  69.    TXT2MSG becomes very useful when used with  your event processing.  It can
  70.    give  you the  ability to  send  reports of  operations, netmail  traffic,
  71.    abnormal  user logoffs,  etc. to  your  messagebase as  public or  private
  72.    messages.
  73.  
  74.    If used with PCBoard  15+, TXT2MSG supports  File Attachments.  You  could
  75.    have TXT2MSG write a message notifying you of an incoming FAX and actually
  76.    "attach" the fax to that message.   Then, with some careful batch  writing
  77.    to adjust PCBVIEW.BAT, you could even (V)iew the FAX from within PCBoard.
  78.  
  79.    For folks who are playing with RIPscrip, you could use TXT2MSG to insert a
  80.    RIP message to each new  user with a button  to download an attached  ICON
  81.    file.  Users would  simply need to read the message, push  the button, and
  82.    they would then be downloading the needed ICON's!
  83.  
  84.    The uses for TXT2MSG are unlimited!
  85.  
  86.    TXT2MSG has been  written for speed and functionality  in Borland TurboC++
  87.    with about 30% of  it using TASM assembly subroutines.   Full DOS3 network
  88.    support  is implemented,  and  TXT2MSG  will  correctly  recover  when  in
  89.    conflict  with another  process.   TXT2MSG operates  in multi-tasking  and
  90.    LAN/network  environments,   and  will   automatically  detect   TaskView,
  91.    OmniView,  DesqView, DV-X,  Windows, NetBios,  and  a number  of other  OS
  92.    related tasks, using the correct video addresses.
  93.  
  94.    If a critical error occurs, TXT2MSG  will do everything it can to  correct
  95.    the error  and then continue processing.  When run  in a shell of a shell,
  96.    it will use an  internal fatal error handler since Sam  Smith's FATAL will
  97.    have been disabled (if using DOS5  or later).  Notice, Warning, and  Error
  98.    logs  are created  if something  is detected  which may  need  the Sysop's
  99.    attention.
  100.  
  101.    Since first being written for PCBoard 12.0, SQ2MSG, and TXT2MSG  have been
  102.    in wide use on a large number of systems around the world.
  103.  
  104.  
  105.  
  106.    TXT2MSG 2.42                                                        Page 3
  107.  
  108.                                  Acknowledgments
  109.  
  110.    Special thanks to these folks for their initial support of TXT2MSG:
  111.  
  112.    David Hellwege      (Access In Melbourne BBS)
  113.    Ed Hopper           (Ed Hopper's BBS)
  114.    NASA Huntsville     (SpaceLink Educational)
  115.    Tim Farley          (Magee Enterprises)
  116.    Dave Shubert        (Casino BSS)
  117.    Robert White        (Cobb County Government)
  118.  
  119.    And, of course, the FTL users for putting up with "Tex" when he gets mad.
  120.  
  121.                   Copyright, Trademark, and Servicemark notices
  122.  
  123.    Various products  and  names mentioned  herein may  refer to  copyrighted,
  124.    trademarked, or  servicemarked products or  services.  If any  are missing
  125.    from this listing, it is simply an oversight.
  126.  
  127.    PCBoard        Copyright 1985-93 Clarke Development (CDC)
  128.    TurboC         Copyright 1987,1989-91 Borland International
  129.    PKZIP          Copyright 1989-93 Phil Katz
  130.    TXT2MSG        Copyright 1988,1990-93 Robert Vostreys
  131.    SQ2MSG         Copyright 1987-88 Robert Vostreys
  132.    RNET           Copyright 1989-93 Robert Vostreys
  133.    MS-Windows     Trademark of MicroSoft Corporation
  134.    MS-DOS         Trademark of MicroSoft Corporation
  135.  
  136.                       References otherwise not documented:
  137.  
  138.    FTL       FTL BBS, home of TXT2MSG, +1 404-292-8761 / 296-3120 / 299-3930
  139.    RNET      Reliable Network Echomail Tosser (Robert Vostreys)
  140.    ILink     ILink International Echo Network
  141.    RIME      RelayNet International Message Exchange
  142.    DOS       Microsoft's MS-DOS
  143.  
  144.  
  145.  
  146.    TXT2MSG 2.42                                                        Page 4
  147.  
  148.                                   Distribution
  149.  
  150.                                 ZipFile Contents
  151.  
  152.    TXT2MSG is usually  distributed using the Phil Katz  PKZIP packing utility
  153.    but also  may appear in an ARJ, PAK, or LHZ format.  All references to the
  154.    distribution file will be termed 'Zipfile'.
  155.  
  156.    The Zipfile used to distribute TXT2MSG is named using the following naming
  157.    convention:    TX2Mvvvx.zzz
  158.  
  159.         vvv  =    version release number (ie '200')
  160.  
  161.         x    =    alpha/beta version code ('a'-'n')
  162.                   registered version code ('r')
  163.                   unregistered version ('u')
  164.  
  165.         zzz  =    packing method extension ('ZIP')
  166.  
  167.    Please take the time  to examine the contents of the  TXT2MSG Zipfile. You
  168.    should find  the files listed  below and  perhaps a  couple of  additional
  169.    example batch files:
  170.  
  171.    TXT2MSG.EXE    -    The actual TXT2MSG program
  172.    TXT2MSG.DOC    -    The documentation you are now reading
  173.    QUICKREF.DOC   -    Quick reference information/listings
  174.    REGISTER.FRM   -    Registration form and information
  175.    CHANGES.vvv    -    List of recent changes (history files)
  176.    ABNORMAL.BAT   -    Example batchfile (abnormal logoff rpt)
  177.    LOGMAIL.BAT    -    Example batchfile (mailrun process rpt)
  178.    NASAMAIL.BAT   -    Example batchfile (multi-file example)
  179.    SCRIPTS.BAT    -    Example batchfile (SQ2MSG processing)
  180.    FILE_ID.DIZ    -    Description In Zip
  181.  
  182.    The only file actually needed for TXT2MSG to operate is the program itself
  183.    (TXT2MSG.EXE).   All of the other  files are provided for  information and
  184.    understanding of how TXT2MSG works.
  185.  
  186.    If you find a 'bbs ad' within the ZipFile, please let me know.
  187.  
  188.  
  189.  
  190.    TXT2MSG 2.42                                                        Page 5
  191.  
  192.                                Distribution Rules
  193.  
  194.    TXT2MSG may  be distributed  freely and  posted on  BBS's so  long as  the
  195.    following rules are taken into account:
  196.  
  197.     * Sysops MAY place 'ZIP Comments' or similar external ads to the ZipFile.
  198.     * Sysops MAY NOT add additional files to the ZipFile (such as BBS ads).
  199.     * TXT2MSG is NOT to be included in 'rack software' or vendor programs.
  200.     * User groups and non-profit organizations may charge no more than $3.
  201.  
  202.  
  203.                                     Shareware
  204.  
  205.    Since this product is  only useful to BBS Sysops, and BBS Sysops should be
  206.    very  aware of what  Shareware is,  there is  no need  to waste  your time
  207.    describing shareware.  The important facts about TXT2MSG:
  208.  
  209.     * it is Shareware (US $15 suggested)
  210.     * it is not crippled (but the tagline is forced on)
  211.     * it does not 'expire' nor does it have any delays
  212.     * there is a registered version available (which turns off the tagline)
  213.     * lifetime registration - no upgrade fee ever!
  214.     * support is available to everyone (registered or not)
  215.     * support is available via ILink, RIME, SmartNet, and the Internet
  216.     * it will continue to be supported, upgraded, and enhanced
  217.     * to get the registered version, you will need to call and download it
  218.     * if you need a feature or function, simply ask
  219.  
  220.    That is everything out front - the way it should be!
  221.  
  222.  
  223.  
  224.    TXT2MSG 2.42                                                        Page 6
  225.  
  226.                                 TXT2MSG Operation
  227.  
  228.                                     Defaults
  229.  
  230.    TXT2MSG  defaults  to inserting  a  public message.    TO  and FROM  field
  231.    defaults depend on the public/private status of the message:
  232.  
  233.    Public message (-p) defaults:
  234.  
  235.         TO        : ALL
  236.         FROM      : SYSOP
  237.         SUBJECT   : TXT: <basefile.ext>
  238.         ECHO      : non-echo (unless force echo flag is enabled by PCB15)
  239.  
  240.    Receiver/Only message (-r) defaults:
  241.  
  242.         TO        : SYSOP
  243.         FROM      : SYSOP
  244.         SUBJECT   : TXT: <basefile.ext>
  245.         ECHO      : non-echo (unless force echo flag is enabled by PCB15)
  246.  
  247.    Script Questionnaire (-q<file>) defaults:
  248.  
  249.         TO        : ALL or SYSOP (based on public/private status)
  250.         FROM      : <user answering questionnaire>
  251.         SUBJECT   : SQ: <basefile.ext>
  252.         ECHO      : non-echo (unless force echo flag is enabled by PCB15)
  253.         [files]   : all files listed are considered "callerlog" files
  254.  
  255.    Other defaults:
  256.  
  257.    Number of lines per message: 390   (may override for 10 to 9999)
  258.    Number of messages per file: 10    (may override for  1 to 9999)
  259.    Thus, the default is  a maximum of 10 messages  of 390 lines (3900  lines)
  260.    for  each source  file specified.   There  is no  limit to  the  number of
  261.    messages which may  be generated by Script answer files (one per person in
  262.    the file).
  263.  
  264.    TXT2MSG,  by default,  accepts  "header control"  from within  the message
  265.    body.  This may be a security problem or if you don't "know" what the body
  266.    might contain, use the -n switch to turn this feature off.  (see below)
  267.  
  268.    If the "force all messages private" is enabled, the inserted messages will
  269.    be  made private regardless  of any commandline  switches.  Note  that the
  270.    defaults above do not know if  the message will be forced private or  not,
  271.    so take that into  consideration.  TXT2MSG will insert messages into PCB15
  272.    "read only" conferences.  Useful for  moderators or Sysops to put messages
  273.    in those types of conferences.
  274.  
  275.  
  276.  
  277.    TXT2MSG 2.42                                                        Page 7
  278.  
  279.                               Environment Variables
  280.  
  281.    TXT2MSG  will search  for the  environment TXT2MSG=  before it  checks the
  282.    commandline.  You may  specify any options you wish TXT2MSG  to use in the
  283.    environment as you would  via the commandline.  If any  switches are found
  284.    on the  commandline which conflict  with the environment,  the commandline
  285.    takes precedence.  For example, your AUTOEXEC.BAT might have:
  286.  
  287.    SET TXT2MSG=-ibml -fSYSOP
  288.  
  289.    This would set the  default operation to:  include tagline (-i), use  BIOS
  290.    (-b),  use mono  color (-m), local  (non-echo) (-l), and  messages will be
  291.    addressed  from  SYSOP  (-fSYSOP).    If  another  -f  was  found  on  the
  292.    commandline, it  would override the  -fSYSOP set  in the environment.   As
  293.    well, if a -e was found on the commandline it would override the -l.
  294.  
  295.    If you have a batch file with  several calls to TXT2MSG, you might want to
  296.    include a  SET TXT2MSG=  statement to avoid  having to repeat  yourself on
  297.    each invocation.
  298.  
  299.    If you find that  the commandline for TXT2MSG is  too long (either by  the
  300.    DOS limitation of 127 bytes or for aesthetic reasons) simply move  some of
  301.    it to the TXT2MSG environment.
  302.  
  303.    The TXT2MSG environment is NOT required for TXT2MSG to operate.
  304.  
  305.    TXT2MSG needs to know  the location and name of your PCBOARD.DAT file.  In
  306.    trying to  find it, TXT2MSG  will first use  the PCBoard standard  PCBDAT=
  307.    environment.  If PCBDAT=  does not point to a specific  file, TXT2MSG will
  308.    add PCBOARD.DAT and  try again.  Should  that fail, it will  try using the
  309.    PCBDRIVE= and PCBDIR= environment variables.  If  that also fails, it will
  310.    look in the  current directory.  Should even that fail, it will look along
  311.    all directories on the DOS PATH= environment.
  312.  
  313.    If you  are still using  Sam Smith's ProDoor  and have  an old version  of
  314.    PCBoard, TXT2MSG  will search for,  and use, the CONFINFO=  environment in
  315.    order to find the ProDoor CONFINFO file.
  316.  
  317.  
  318.  
  319.    TXT2MSG 2.42                                                        Page 8
  320.  
  321.                                    Commandline
  322.  
  323.    Syntax:  TXT2MSG [options] conf# [@listfile] [files...]
  324.  
  325.    TXT2MSG  accepts option  switches using both  "-" or  "/".   Use whichever
  326.    switch character you like (or both).
  327.  
  328.    TXT2MSG will  accept options and  file specifications in any  order EXCEPT
  329.    that the first "non-switch" item it  finds (ie, the first thing without  a
  330.    "-"  or "/" in front) is  expected to be the  conference number.  Anything
  331.    else on the  commandline that does  not start with  a switch character  is
  332.    considered a file to be processed.
  333.  
  334.    Single-letter switches may be combined with a single switch character.  In
  335.    other words,  if you  want to use  the switches  -i, -b,  and -m, you  may
  336.    combine them as -ibm (or /ibm, or -bim, or /mbi, etc).
  337.  
  338.    Filenames  specified on  the commandline  may be  any valid  DOS filenames
  339.    (including network server specifications and wildcards).  You may also use
  340.    an "@" followed  by a filename  to indicate that  TXT2MSG should read  the
  341.    contents of the  specified file  to get a  list of  files which should  be
  342.    processed.  The listing in  the specified @list file may also be any valid
  343.    DOS filenames, including wildcards.   You may specify any number  of @list
  344.    files.    Note  that  the  @list  specification  itself  may  not  contain
  345.    wildcards.
  346.  
  347.    The three switches that accept multiple words (-t for TO, -f for FROM, and
  348.    -s for SUBJECT) may be specified in two ways:   Either place an underscore
  349.    where a space would be or place the entire switch within quotes.  I.e. use
  350.    "-tTO THIS  NAME" or  -tTO_THIS_NAME.   If only  specifying a  single word
  351.    (like SYSOP), no quotes or underscores are needed (-tSYSOP works fine).
  352.  
  353.    Two  switches accept numbers  (-k# for maximum  lines and -x#  for maximum
  354.    messages per  sourcefile).  Simply  specify the desired number  (no spaces
  355.    allowed) such as -k400 (400  lines max per message) or -x5 (5 messages max
  356.    per source file).
  357.  
  358.    Finally, three switches require an accompanying filename (-u, -v, and -q).
  359.    Simply append the filename on the end.  Examples: -uC:\PCB\PCBOARD.SYS and
  360.    -qK:\LOGS\NEWUSER.
  361.  
  362.    Switches, while always shown in lowercase, are NOT case sensitive.
  363.  
  364.  
  365.  
  366.    TXT2MSG 2.42                                                        Page 9
  367.  
  368.                               Commandline Examples
  369.  
  370.    TXT2MSG 1 textfile.doc
  371.  
  372.    TXT2MSG 102 -p -i /l /n -tALL "-fNASA Select" k:\nasacomm\*.SKD
  373.  
  374.    TXT2MSG 102 k:\nasacomm\*.SKD -piln -fNASA_Select
  375.  
  376.    TXT2MSG 49 -r k:\rnet\report.log ..\confs.log q:uupcb\post.log -fEVENT -n
  377.  
  378.    for %%a in (500 501 502 503) do TXT2MSG %%a -peh INIT.TXT -sFTL_is_here!
  379.  
  380.    TXT2MSG 21 @c:\pcb\listfile e:\text.* -bimp "-tALL_USERS" -fSYSOP
  381.  
  382.    TXT2MSG 0 -rny c:\pcb\welcome.txt -uPCBOARD.SYS -fSYSOP -sWelcome_Aboard!
  383.  
  384.  
  385.    Additional examples are shown under the heading "Script Processing".
  386.  
  387.    If you invoke  TXT2MSG without  any parameters,  the version,  compilation
  388.    date,  copyright, commandline syntax,  and valid commandline  switches are
  389.    displayed.
  390.  
  391.    Likely, TXT2MSG will be  able to parse most  any commandline sequence  you
  392.    care to  give it.   If it  gets confused  or lost, you  will be  shown the
  393.    offending switch(s) as it aborts operation with a non-zero DOS errorlevel.
  394.  
  395.                               Commandline Switches
  396.  
  397.                                  Header Control
  398.  
  399.    Control of the  message 'header' (to, from, subject,  echo, security, etc)
  400.    is usually handled  on the commandline.  See  "Textfile Control" below for
  401.    information on using the message text itself to control the header.
  402.  
  403.    -p   Public message to "ALL"
  404.         Commandline override:    -r
  405.  
  406.    -r   Receiver-Only to "SYSOP"
  407.         Commandline override:    -p
  408.  
  409.    -e   Echo message (turn echo flag ON)
  410.         Commandline override:    -l
  411.         Special override:        subject starting with "NE:"
  412.  
  413.    -l   Local message (turn echo flag OFF)
  414.         Commandline override:    -e
  415.         Special override:        subject starting with "E:"
  416.  
  417.  
  418.  
  419.    TXT2MSG 2.42                                                       Page 10
  420.  
  421.    -s   Message SUBJECT (if multiple words, use '_' or place within quotes)
  422.         Textfile override:       SUBJECT: This is a subject
  423.  
  424.    -f   Message FROM (if multiple words, use '_' or place within quotes)
  425.         Commandline override:    -u or -q
  426.         Textfile override:       FROM: firstname lastname
  427.  
  428.    -t   Message TO (if multiple words, use '_' or place within quotes)
  429.         Commandline override:    -v
  430.         Textfile override:       TO: firstname lastname
  431.              Note: If  multiple -t  switches are present,  a message  will be
  432.              sent  to  each  person  specified.    The  overrides listed  are
  433.              actually additional names, not overriding the -t name.
  434.  
  435.    -u   Use PCBOARD.SYS for FROM
  436.         Commandline override:    -f or -q
  437.         Textfile override:       FROM: firstname lastname
  438.              Note:  Use  -uD:\DIR\PCBOARD.SYS  to  specify  that  the message
  439.              should be "from" the user found in the file PCBOARD.SYS.
  440.  
  441.    -v   Use PCBOARD.SYS for TO
  442.         Commandline override:    -t
  443.         Textfile override:       TO: firstname lastname
  444.              Note:  Use  -vD:\DIR\PCBOARD.SYS  to specify  that  the  message
  445.              should be  "to" the user  found in  the file PCBOARD.SYS.   This
  446.              name is in addition to any -t names specified.
  447.  
  448.    -h   Header modifications allowed (textfile may change header)
  449.         Commandline override:    -n
  450.              Note:  TXT2MSG allows you to specify  the header information for
  451.              the message from  within the message text.   This switch enables
  452.              header control from within the textfile.
  453.  
  454.    -n   Header modifications NOT allowed (commandline control only)
  455.         Commandline override:    -h
  456.              Note: Use -n if you do not want the text within the message body
  457.              to  change the  message  header. If  importing  from an  unknown
  458.              source file the -n switch is recommended.
  459.  
  460.    -d   Use the text file's TIME/DATE stamp for message time/date.
  461.  
  462.    -a   File attachment (-aD:\DIR\FILENAME.EXT)
  463.         Textfile override:       ATTACH: d:\dir\filename.ext
  464.              Note: Use -a to specify a file  to be "attached" to the message.
  465.              Requires PCBoard 15+.
  466.  
  467.    -i   Add id tagline (* TXT2MSG v.vv)
  468.         Environment override:    SET TAG=<text to use as tagline>
  469.  
  470.  
  471.  
  472.    TXT2MSG 2.42                                                       Page 11
  473.  
  474.                                  Message Control
  475.  
  476.    -k   Maximum number of lines per message (-k#)
  477.              Note: Use -k# (# = 10 to  9999) to specify the maximum number of
  478.              lines allowed per message (default is 95).  If more than # lines
  479.              are needed,  multiple messages will  be created up to  the limit
  480.              specified by -x# (see below).
  481.  
  482.    -x   Maximum number of messages per source file (-x#)
  483.              Note: Use  -x# (#  = 1  to 9999)  to specify  how many  messages
  484.              TXT2MSG may  make when the  textfile is longer then  the maximum
  485.              number of lines allowed.   A "(continued)" line is added  to the
  486.              end of a split message and to the beginning of the next message.
  487.              -x has no effect during script questionnaire (-q) processing.
  488.  
  489.    -q   Script Questionnaire processing (SQ2MSG)
  490.              Note: Use -q  to specify the filename of  a script questionnaire
  491.              ANSWERx  file to  process.   This should appear  something like:
  492.              -qD:\PCB\MAIN\ANSWER1.  When  this switch is in  effect, TXT2MSG
  493.              uses different rules for the  FROM field and processes any other
  494.              files specified as  callers logs instead of message  files.  See
  495.              "Script Processing" for more information.
  496.  
  497.    -z   Single-node fast multi-message insertion (disable directory flush)
  498.              Note: Included mostly  for compatability with older  versions of
  499.              TXT2MSG -- the 2.40+ versions use an internal speed cache.
  500.  
  501.                                 Screen/Interface
  502.  
  503.    -b   BIOS screen writes
  504.              Note: -b will  force BIOS writes for  screen displays.  This  is
  505.              likely not needed  unless using an older multi-tasker  or a not-
  506.              so-compatible  computer.   TXT2MSG detects  most  of the  common
  507.              multi-tasking   systems   (TaskView,  OmniView,   DV,   Windows,
  508.              MultiLink, etc) and enables this option automatically.
  509.  
  510.    -c   CGA snow reduction (use slower writes on CGA)
  511.              Note: Use  -c if  you  get 'snow'  on the  screen during  direct
  512.              screen writes and would rather not see it.
  513.  
  514.    -m   Monochrome/LCD display colors (if auto-detect fails).
  515.  
  516.  
  517.  
  518.    TXT2MSG 2.42                                                       Page 12
  519.  
  520.                                 Textfile Control
  521.  
  522.    One of the most  useful features of TXT2MSG is that it  allows the message
  523.    header to be  modified by the text  in the textfile.   This allows control
  524.    over the header without having to modify the commandline switches.  Header
  525.    control may be disabled with the -n switch or enabled with the -h switch. 
  526.    TO: name
  527.    TO: @d:\dir\filename.lst
  528.  
  529.    FROM: name
  530.    FR: name
  531.  
  532.    SUBJECT: subject
  533.    SUBJ: subject
  534.    SB: subject
  535.  
  536.    CC: name
  537.    CC: @d:\dir\filename.lst
  538.  
  539.    ATTACH: d:\dir\filename.ext
  540.    FILE: d:\dir\filename.ext
  541.  
  542.    .PG       (force a MESSAGE break; similar to SLMR's message break)
  543.  
  544.    NOTES:
  545.         CC (carbon copy) names are  additional names to send the message  to.
  546.         Use  this to specify a "group" of  people to send a given message to.
  547.         If the first character  of a CC: name is an "@" the  rest of the line
  548.         is assumed to be  a file specification pointing to a  textfile with a
  549.         list of  names.  This is useful  to send messages to a  list of users
  550.         produced with grep or a similar utility.
  551.  
  552.         The only limit  for TO: and CC:  names is memory (around  10000 names
  553.         per invocation of TXT2MSG... HEH!)
  554.  
  555.         ATTACH (requires PCBoard 15) allows  you to specify a file attachment
  556.         to be put with the message.  TXT2MSG will automatically copy the file
  557.         to the  conference specific attach  directory.  The original  file is
  558.         not deleted or changed in any way.  PCBoard allows one attachment per
  559.         message.
  560.  
  561.         The .PG option forces TXT2MSG to break  the message at that specified
  562.         point.   Note that  header control (-h)  must be enabled  for this to
  563.         work otherwise TXT2MSG will ignore it.
  564.  
  565.  
  566.  
  567.    TXT2MSG 2.42                                                       Page 13
  568.  
  569.                                 Script Processing
  570.  
  571.    The idea  is to process new  script questionnaire answers into  a message,
  572.    addressed from the user completing the script, for the Sysop to read along
  573.    with their  other new mail.  This  gives the Sysop (or  Sysop helpers) the
  574.    ability to do a (F)ind when reading the message and easily upgrade or edit
  575.    that user's  record.   Once you start  reading scripts in  the messagebase
  576.    instead of going out to disk you'll wonder how you survived without it!
  577.  
  578.    Another important use  is that you want  to know if the new  user read the
  579.    required bulletins, or perhaps want to determine if they tried to download
  580.    files right  off the  bat.   TXT2MSG will, optionally,  append the  user's
  581.    callers log entries  to the end of their  script answer message.   You can
  582.    then, simply by  reading a single message, see  their script questionnaire
  583.    answers and their callers log entries.  Then you can simply use the (F)ind
  584.    command to edit their user record.
  585.  
  586.    SQ2MSG   processing  is  slightly   different  than  the   normal  TXT2MSG
  587.    processing.  Operation is the similar, with these exceptions:
  588.  
  589.    The -f (from)  switch is ignored.   The messages will always  be addressed
  590.    (from) the user who answered the script.
  591.  
  592.    You  must specify  the script  questionnaire answer  file to  process with
  593.    the -q switch:  -qD:\PCB\MAIN\ANSWER1.  Do not put any  spaces between the
  594.    -q and  the filename to process.  Using the  -q switch (and the associated
  595.    filename) tells  TXT2MSG that you want script questionnaire processing not
  596.    normal TXT2MSG processing.
  597.  
  598.    The questionnaire answer file is processed differently than normal TXT2MSG
  599.    processing.   The file is scanned looking for  "From: username,".  Then it
  600.    takes all text between that point and the next "From: " (or the end of the
  601.    file) and inserts it as a message.
  602.  
  603.    All other files specified (via wildcard, @list, or explicitly) are treated
  604.    as callers logs.  The specified files will be scanned for log entries from
  605.    the user completing the script.   These files are not imported as  a whole
  606.    (as normal  TXT2MSG processing  would do), instead  only the  specific log
  607.    entries for that user are appended to the script answer message.
  608.  
  609.    The -n,  -h, -x#, and -k#  commandline switches are ignored  during script
  610.    answer file processing.  
  611.  
  612.    All other switches (-t,  -s, -r/-p, -e/-l...) are still active  and may be
  613.    used as needed.
  614.  
  615.  
  616.  
  617.    TXT2MSG 2.42                                                       Page 14
  618.  
  619.                                  SQ2MSG Example
  620.  
  621.    TXT2MSG 0 -qc:\pcb\main\answer1 d:\logs\caller? -r -tSYSOP
  622.  
  623.    The above  example shows  perhaps  the most  common usage  for the  script
  624.    questionnaire processing abilities  of TXT2MSG (SQ2MSG).   The answer file
  625.    c:\pcb\main\answer1 is scanned and entered  as messages to the main board.
  626.    Messages will be R/O, addressed to SYSOP, and have any callers log entries
  627.    found  in  the d:\logs\caller?  files  appended.   You need  one  of these
  628.    statements for each  of your script ANSWERx  files (if you have  more than
  629.    one) since TXT2MSG only accepts a single -qANSWERx statement.
  630.  
  631.    TXT2MSG 21 -qc:\pcb\main\answer5 -pil -tALL -sConf_21_Application
  632.  
  633.    This second example shows how you might have a script questionnaire (which
  634.    produces c:\pcb\main\answer5)  for requesting  access to  a private  adult
  635.    conference.  The script answer messages are placed into conference 21, are
  636.    addressed to ALL  as public messages, local (non-echo), and have a tagline
  637.    appended.  The conference members could  then review the script answers to
  638.    decide if they  wanted this  person to  join their  party.   Note that  no
  639.    additional files  are specified and  thus no callers  log entries  will be
  640.    included (which might allow  a breach of  security since the messages  are
  641.    made public).
  642.  
  643.    Since  we don't want  to have a  message for every  user everytime someone
  644.    answers a script,  we need to move the  processed script answers to  a log
  645.    file.  An example batch file, which might be called by one of your EVENTS:
  646.  
  647.         @echo off
  648.         echo ** process script answers to messages...
  649.         TXT2MSG  0 -qc:\pcb\main\answer1 d:\logs\caller? -r -tSYSOP
  650.         TXT2MSG 21 -qc:\pcb\main\answer5 -pil -tALL -sConf_21_Application
  651.  
  652.         echo ** copy answers to log files...
  653.         type c:\pcb\main\answer1 >>c:\pcb\main\answer1.log
  654.         type c:\pcb\main\answer5 >>c:\pcb\main\answer5.log
  655.  
  656.         echo ** delete answer files...
  657.         if exist c:\pcb\main\answer1 del c:\pcb\main\answer1
  658.         if exist c:\pcb\main\answer5 del c:\pcb\main\answer5
  659.  
  660.         echo ** done!
  661.  
  662.  
  663.  
  664.    TXT2MSG 2.42                                                       Page 15
  665.  
  666.                           Notes and Limits of Operation
  667.  
  668.    TXT2MSG will  process as many  files as it  can parse into  memory (around
  669.    4000).     This   includes  all   files  found   via  wildcard   or  @list
  670.    specifications.   The  actual number  of messages  inserted might  be even
  671.    higher, this  is simply the  maximum number of  "source" files.   A single
  672.    5000 line text file with 20 carbon copy names and a limit of 100 lines per
  673.    message  would generate  about  1000  messages!   The  number of  messages
  674.    generated  by a  script  questionnaire ANSWERx  source  file is  basically
  675.    unlimited.
  676.  
  677.    The TO, FROM, and SUBJECT fields of a PCBoard 14 message are limited to 25
  678.    characters (each).  If  you specify anything longer,  it will be  inserted
  679.    using the PCBoard 15 extended header convention (120 characters for TO, 60
  680.    for FROM and SUBJECT).  Anything longer than that will be truncated.
  681.  
  682.    TXT2MSG will parse up  to about 10000 names per  sourcefile for processing
  683.    carbon copy messages.   If you need  more than that, you're  in trouble...
  684.    (heh).
  685.  
  686.    PCBoard limits messages to a total size of 32K.  TXT2MSG will, of  course,
  687.    automatically create multiple messages to get everything inserted.
  688.  
  689.    Disk space is the  only limit to  the size of  file ATTACHments.   PCBoard
  690.    limits us to only ONE file attach per message.  TXT2MSG will automatically
  691.    make multiple copies of the  attachment if inserting multiple messages (so
  692.    PCBPACK does not delete an attach before someone else can get it).
  693.  
  694.    Special and dangerous ASCII characters (such  as ^S, ^Q, ^X) are  filtered
  695.    and replaced with something that looks similar.
  696.  
  697.    TXT2MSG supports all PCBoard "special"  conference flags such as "make all
  698.    messages private", "force echo all  messages", and similar.  TXT2MSG will,
  699.    however,  insert messages in  "read-only" conferences (so  that admin type
  700.    folks can use TXT2MSG to create those messages in the first place).
  701.  
  702.    All files  (messagebases,  textfiles, script  questionnaire  answerx,  and
  703.    callers logs)  are opened  using DOS3/NetBIOS SHARE.   TXT2MSG  will retry
  704.    DOS3 SHARE locks  for 90 seconds and then  abort with an errorlevel  if it
  705.    fails.  Multi-user concurrent message entry is perfectly safe.
  706.  
  707.    Files without CR (carriage return) such as  those generated under the UNIX
  708.    operating  system and  files using  the  Macintosh soft  CR are  correctly
  709.    supported.  This is  useful for non-PC  folks to protocol upload  messages
  710.    which  TXT2MSG  can  then  process  for them.    Amiga  formatted  soft-CR
  711.    textfiles are also supported.
  712.  
  713.    If  a conference messagebase,  IDX file, or  NDX file  is missing, TXT2MSG
  714.    will automatically create it for you.
  715.  
  716.  
  717.  
  718.    TXT2MSG 2.42                                                       Page 16
  719.  
  720.    When inserting  multiple messages  per sourcefile,  TXT2MSG will  append a
  721.    "##/##" on the end of the  subject where ## is the current  message number
  722.    and ## is the total number of messages.  This support is all automatic.
  723.  
  724.    TXT2MSG will automatically  detect multi-taskers and video drivers such as
  725.    Windows, DesqView,  OmniView, VU, and  similar.  If it  this autodetection
  726.    fails or if you  have a strange multi-tasker,  use the -b switch  to force
  727.    TXT2MSG to operate at the BIOS level for screen writes.
  728.  
  729.    40 column  video modes  are not supported.   All  other video  modes, from
  730.    80x25 to 156x132 (or whatever other video  mode/font you care to use), are
  731.    supported and used.  If you use a 132 column mode, you'll see more.
  732.  
  733.    TXT2MSG creates an internal disk cache  if memory is available to increase
  734.    operational speed.  This will only make a difference if importing multiple
  735.    messages at the same time.
  736.  
  737.    You need about 135K of free RAM for TXT2MSG to run.
  738.  
  739.                                  Error Messages
  740.  
  741.    TXT2MSG has extensive internal error traps and even its own "fatal"  error
  742.    handler (useful if running a  shell-in-a-shell under DOS5).  While TXT2MSG
  743.    does everything  it can to  get around problems,  should it fail,  it will
  744.    display a  popup Error window  and then  exit with a  non-zero errorlevel.
  745.    All warnings and errors are logged to the  files WARNING.LOG and ERROR.LOG
  746.    in the current directory for later review.
  747.  
  748.                               Contacting the Author
  749.  
  750.    I  am always  interested in  hearing your  comments, suggestions,  and bug
  751.    reports so  that they  may be  handled quickly.   If  you need  to get  in
  752.    contact with me, address all correspondence to "ROBERT VOSTREYS" via:
  753.  
  754.    FTL BBS:       +1 404-292-8761 [3/12/24]
  755.                   +1 404-296-3120 [HST1440]
  756.                   +1 404-299-3930 [v.32bis]
  757.  
  758.    Echo:          ILink Sysops or MM-RNET conferences
  759.                   SmartNet MarkMail or Sysops conferences
  760.                   UNI'net RNET Support conference
  761.                   RIME Sysops or Admin conferences
  762.                   Atlanta AtlSysops or NetLanta conferences
  763.  
  764.    US Mail:       Robert Vostreys
  765.                   Post Office Box 2315
  766.                   Stone Mountain, GA 30086-2315
  767.                   USA
  768.  
  769.    Internet:      robert.vostreys@ftl.atl.ga.us
  770.  
  771.